﻿using STHPMS1.ICore.I_Entity.Stmpms1;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace STHPMS1.ICore.I_Serv
{
    /// <summary>
    /// Id 生成服务
    /// </summary>
    public interface IKeyGenrateService : IService
    {
        /// <summary>
        /// 路面结构Id生成
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        string NewPmstcId(IB_Pmstc entity);
        /// <summary>
        /// 构造物Id生成
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        string NewSturctureId(IB_Sturcture entity);
        /// <summary>
        /// 划分标准Id生成
        /// </summary>
        /// <param name="rdwayid"></param>
        /// <param name="directiontype"></param>
        /// <param name="changetype"></param>
        /// <param name="mp"></param>
        /// <returns></returns>
        string NewRdStandard(string rdwayid, int directiontype, int changetype, double mp);
        /// <summary>
        /// 路段Id生成
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        string NewInvntoryId(string rdwayid, int direct, double beginmp, double endmp);
        /// <summary>
        /// 路段名称
        /// </summary>
        /// <param name="rdwayname"></param>
        /// <param name="direct"></param>
        /// <param name="no"></param>
        /// <returns></returns>
        string NewInvntoryName(string rdwayname, int direct, int no);
        /// <summary>
        /// 单元Id生成
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="rdwayid"></param>
        /// <param name="directname"></param>
        /// <returns></returns>
        string NewUnitId(string rdwayid, int direct, double beginmp, double endmp);

        string NewUnitName(string rdwayname, int direct, int no);
        /// <summary>
        /// 路面结构层ID生成
        /// </summary>
        /// <param name="struid"></param>
        /// <param name="layer_dictid"></param>
        /// <returns></returns>
        string NewLayId(string struid, string layer_dictid);
        /// <summary>
        /// 观测站Id生成
        /// </summary>
        /// <returns></returns>
        string NewStationId();
        /// <summary>
        /// GuId
        /// </summary>
        /// <returns></returns>
        string NewGuid();
        /// <summary>
        /// Fwd弯沉Id
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        string NewFwdId(IS_Rdfwd entity);
        /// <summary>
        /// 交通量轴载Id
        /// </summary>
        /// <param name="rdwaryId"></param>
        /// <param name="segBeginmp"></param>
        /// <param name="direction"></param>
        /// <param name="aadtYear"></param>
        /// <returns></returns>
        string NewTrafaxleId(string rdwaryId,string segBeginmp,string direction,string aadtYear);
        /// <summary>
        /// 方案Id
        /// </summary>
        /// <param name="rdwaryId"></param>
        /// <param name="segBeginmp"></param>
        /// <param name="direction"></param>
        /// <param name="date"></param>
        /// <returns></returns>
        string NewPlanId(string rdwaryId, string segBeginmp, string direction, DateTime date, int plan = 0);
        /// <summary>
        /// 初选结构Id
        /// </summary>
        /// <param name="iniproj_Id"></param>
        /// <param name="combi"></param>
        /// <returns></returns>
        string NewCombStruId(string iniproj_Id, string combi);
    }
}
